<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<html><head>
<title>Apache module mod_status</title>
</head><!-- Background white, links blue (unvisited), navy (visited), red (active) -->
<BODY
 BGCOLOR="#FFFFFF"
 TEXT="#000000"
 LINK="#0000FF"
 VLINK="#000080"
 ALINK="#FF0000"
>

<!--#include virtual="header.html" -->
<h1 ALIGN="CENTER">Module mod_status</h1>

The Status Module is only available in Apache 1.1 and later.<p>

<h2>Function</h2>

The Status module allows a server administrator to find out how well
their server is performing.  A HTML page is presented that gives
the current server statistics in an easily readable form.  If required
this page can be made to automatically refresh (given a compatible
browser).  Another page gives a simple machine-readable list of the current
server state.
<p>
The details given are:
<ul>
<li>The number of children serving requests
<li>The number of idle children
<li>The status of each child, the number of requests that child has
performed and the total number of bytes served by the child (*)
<li>A total number of accesses and byte count served (*)
<li>The time the server was started/restarted and the
time it has been running for
<li>Averages giving the number of requests per second, 
the number of bytes served per second and the average number
of bytes per request (*)
<li>The current percentage CPU used by each child and in total by
Apache (*)
<li>The current hosts and requests being processed (*)
</ul>

A compile-time option must be used to display the details marked "(*)" as
the instrumentation required for obtaining these statistics does not
exist within standard Apache.

<h2>Enabling Status Support</h2>

To enable status reports only for browsers from the foo.com
domain add this code to your <code>access.conf</code> configuration file
<pre>
    &lt;Location /server-status&gt;
    SetHandler server-status
    
    order deny,allow
    deny from all
    allow from .foo.com
    &lt;/Location&gt;
</pre>
<p>
You can now access server statistics by using a Web browser to access the
page <code>http://your.server.name/server-status</code>
<p>
Note that mod_status will only work when you are running Apache in 
<A HREF="core.html#servertype">standalone</A> mode and not 
<A HREF="core.html#servertype">inetd</A> mode.

<h3>Automatic Updates</h3>
You can get the status page to update itself automatically if you have
a browser that supports "refresh".  Access the page
<code>http://your.server.name/server-status?refresh=N</code> to refresh the page
every N seconds.
<h3>Machine Readable Status File</h3>
A machine-readable version of the status file is available by accessing the
page <code>http://your.server.name/server-status?auto</code>.  This is useful
when automatically run, see the Perl program in the <code>/support</code>
directory of Apache, <code>log_server_status</code>.

<h2>Full Instrumentation</h2>

To obtain full statistics you must compile Apache with a special
directive.  On some machines there may be a small performance loss
if you do this.  Try full statistics and see if you notice any
difference.  If you do please contact <a href="mailto:mark@ukweb.com">
mark@ukweb.com</a> and tell me your configuration.

<p>

Do this by adding the following to the AUX_CFLAGS line in the
"Configuration" file and then recompiling as usual.
<pre>
        AUX_CFLAGS= (something) -DSTATUS
</pre>

<BLOCKQUOTE>
 <STRONG>
  It should be noted that if <SAMP>mod_status</SAMP> is compiled into
  the server, its handler capability is available in <EM>all</EM>
  configuration files, including <EM>per</EM>-directory files
  (<EM>e.g.</EM>, <SAMP>.htaccess</SAMP>).  This may have
  security-related ramifications for your site.
 </STRONG>
</BLOCKQUOTE>
<!--#include virtual="footer.html" -->
</BODY>
</HTML>
